package com.git.hui.yinshua.biz.rest.models.order.req;

import com.git.hui.yinshua.api.model.PageReq;
import com.git.hui.yinshua.api.model.order.OrderTypeEnum;
import lombok.Data;

import java.util.List;

/**
 * 订单查询
 *
 * @author YiHui
 * @date 2024/6/20
 */
@Data
public class OrderQueryReq extends PageReq {

    /**
     * 用户查询
     */
    private Integer userId;

    /**
     * 用户昵称
     */
    private String nickName;

    /**
     * 收货人查询
     */
    private String receiveName;

    /**
     * 收货人手机号
     */
    private String receivePhone;

    /**
     * 订单号查询
     */
    private Long orderId;

    /**
     * 订单号
     */
    private List<Long> orderIds;

    /**
     * 拼团订单查询
     */
    private String ptOrder;

    /**
     * 订单类型，英文逗号分割
     */
    private String status;

    /**
     * 订单状态
     */
    private List<Integer> state;

    /**
     * 订单类型： 对于app而言，查询的都是非删除的； 但是对于后台而言，可以查询用户删除的订单
     */
    private Integer deleted;

    /**
     * 商品名查询
     */
    private String goodsName;

    /**
     * 订单创建开始时间，单位为秒
     */
    private Long startTime;

    /**
     * 订单创建结束时间，单位为秒
     */
    private Long endTime;

    /**
     * 订单类型:
     *
     * @see OrderTypeEnum#getType()
     */
    private Integer type;

    public void formatTime() {
        // 兼容传入时间为毫秒的场景
        if (startTime != null && startTime > 17189712000L) {
            this.startTime /= 1000;
        }
        if (endTime != null && endTime > 17189712000L) {
            this.endTime /= 1000;
        }
    }
}
